import 'dart:convert';

import 'package:enterprise_v6_app/generated/json/base/json_field.dart';
import 'package:enterprise_v6_app/generated/json/get_detail_by_id_entity.g.dart';


@JsonSerializable()
class GetDetailByIdEntity {

	GetDetailByIdEntity();

	factory GetDetailByIdEntity.fromJson(Map<String, dynamic> json) => $GetDetailByIdEntityFromJson(json);
	String? id;
	String? launchDepartmentId;
	String? launchDepartmentName;
	List<GetDetailByIdQuestions>? questions;
	String? surveyDateEnd;
	String? surveyName;
	List<GetDetailByIdSurveyPositions>? surveyPositions;
	List<GetDetailByIdSurveyTypes>? surveyTypes;
	List<GetDetailByIdSurveyUsers>? surveyUsers;

	Map<String, dynamic> toJson() => $GetDetailByIdEntityToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdQuestions {

	GetDetailByIdQuestions();

	factory GetDetailByIdQuestions.fromJson(Map<String, dynamic> json) => $GetDetailByIdQuestionsFromJson(json);
	String? companyCode;
	String? createBy;
	String? createById;
	String? createDate;
	String? deleted;
	int? duration;
	String? id;
	String? myValidity;
	String? optionA;
	String? optionB;
	String? optionC;
	String? optionD;
	String? parsing;
	String? questionMain;
	String? questionTypeDicId;
	String? questionValidity;
	int? score;
	String? textbookId;
	String? timeCount;
	String? updateBy;
	String? updateById;
	String? updateDate;

	Map<String, dynamic> toJson() => $GetDetailByIdQuestionsToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdSurveyPositions {

	GetDetailByIdSurveyPositions();

	factory GetDetailByIdSurveyPositions.fromJson(Map<String, dynamic> json) => $GetDetailByIdSurveyPositionsFromJson(json);
	String? companyCode;
	String? createBy;
	String? createById;
	String? createDate;
	String? deleted;
	String? id;
	String? surveyId;
	String? surveyPositionId;
	int? surveyPositionSort;
	String? updateBy;
	String? updateById;
	String? updateDate;
	int? wrongCount;

	Map<String, dynamic> toJson() => $GetDetailByIdSurveyPositionsToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdSurveyTypes {

	GetDetailByIdSurveyTypes();

	factory GetDetailByIdSurveyTypes.fromJson(Map<String, dynamic> json) => $GetDetailByIdSurveyTypesFromJson(json);
	String? companyCode;
	String? createBy;
	String? createById;
	String? createDate;
	String? deleted;
	String? id;
	int? selectCount;
	String? surveyId;
	String? surveyTypeDicId;
	String? surveyTypeDicName;
	String? updateBy;
	String? updateById;
	String? updateDate;

  ///调查里需要的字段
  @JSONField(deserialize: false, serialize: false)
  bool checkboxSelected = false;
	Map<String, dynamic> toJson() => $GetDetailByIdSurveyTypesToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdSurveyUsers {

	GetDetailByIdSurveyUsers();

	factory GetDetailByIdSurveyUsers.fromJson(Map<String, dynamic> json) => $GetDetailByIdSurveyUsersFromJson(json);
	String? companyCode;
	String? createBy;
	String? createById;
	String? createDate;
	String? deleted;
	String? id;
	int? number;
	int? positionErrorCount;
	int? positionTotalCount;
	String? recommendation;
	GetDetailByIdSurveyUsersSelectPositionList? selectPositionList;
	GetDetailByIdSurveyUsersSelectTypeList? selectTypeList;
	String? surveyId;
	String? surveyUserDepartmentId;
	String? surveyUserDepartmentName;
	String? surveyUserId;
	String? surveyUserName;
	String? updateBy;
	String? updateById;
	String? updateDate;

	Map<String, dynamic> toJson() => $GetDetailByIdSurveyUsersToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdSurveyUsersSelectPositionList {


	GetDetailByIdSurveyUsersSelectPositionList();

	factory GetDetailByIdSurveyUsersSelectPositionList.fromJson(Map<String, dynamic> json) => $GetDetailByIdSurveyUsersSelectPositionListFromJson(json);

	Map<String, dynamic> toJson() => $GetDetailByIdSurveyUsersSelectPositionListToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}

@JsonSerializable()
class GetDetailByIdSurveyUsersSelectTypeList {


	GetDetailByIdSurveyUsersSelectTypeList();

	factory GetDetailByIdSurveyUsersSelectTypeList.fromJson(Map<String, dynamic> json) => $GetDetailByIdSurveyUsersSelectTypeListFromJson(json);

	Map<String, dynamic> toJson() => $GetDetailByIdSurveyUsersSelectTypeListToJson(this);

	@override
	String toString() {
		return jsonEncode(this);
	}
}
